class BaseService(object):
    def __init__(self):
        self.name = "your service name"
        self.interval = 300
        self.plugin_name = "your plugin name"
        self.triggers={}

class cpu(BaseService):
    def __init__(self):
        super(cpu,self).__init__()
        self.name = 'linux_cpu'
        self.interval = 30
        self.plugin_name = "get_cpu_status"
        self.triggers ={
                'idle':{
                        'func':'avg',
                        'last':10*60,
                        'operator':'lt',
                        'warning':20,
                        'critical':5,
                        'data_type':float
                        },
                'iowait':{
                        'func':'hit',
                        'last':15*60,
                        'count':5,
                        'operator':'gt',
                        'warning':40,
                        'critical':50,
                        'data_type':float,
                        },      
        }     


class memory(BaseService):
    def __init__(self):
        super(memory,self).__init__()
        self.name = "linux_memory"
        self.interval = 20
        self.plugin_name = "get_mem_status"
        self.triggers ={
                'usage':{
                        'func':'avg',
                        'last':5*60,
                        'count':1,
                        'operator':'gt',
                        'warning':80,
                        'critical':90,
                        'data_type':float
                        },   
        }     


class storage(BaseService):
    def __init__(self):
        super(storage,self).__init__()
        self.name = "linux_storage"
        self.interval = 60
        self.plugin_name = "get_storage_status"
        self.triggers ={
                'usage':{
                        'func':'avg',
                        'last':5*60,
                        'count':1,
                        'operator':'gt',
                        'warning':80,
                        'critical':90,
                        'data_type':float
                        },   
        }     
